<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>pvsifd</title>
    <link rel="stylesheet" type="text/css" href="csound.css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
    <link rel="home" href="index.html" title="The Canonical Csound Reference Manual" />
    <link rel="up" href="OpcodesTop.html" title="Orchestra Opcodes and Operators" />
    <link rel="prev" href="pvshift.html" title="pvshift" />
    <link rel="next" href="pvsinfo.html" title="pvsinfo" />
  </head>
  <body>
    <div class="navheader">
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">pvsifd</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="pvshift.html">Prev</a> </td>
          <th width="60%" align="center">Orchestra Opcodes and Operators</th>
          <td width="20%" align="right"> <a accesskey="n" href="pvsinfo.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="refentry">
      <a id="pvsifd"></a>
      <div class="titlepage"></div>
      <a id="Indexpvsifd" class="indexterm"></a>
      <div class="refnamediv">
        <h2>
          <span class="refentrytitle">pvsifd</span>
        </h2>
        <p>pvsifd — 
     Instantaneous Frequency Distribution, magnitude and phase analysis.
          </p>
      </div>
      <div class="refsect1">
        <a id="idp139125584"></a>
        <h2>Description</h2>
        <p>
  The pvsifd opcode takes an input a-rate signal and performs an Instantaneous Frequency,
  magnitude and phase analysis, using the STFT and pvsifd (Instantaneous Frequency Distribution),
  as described in Lazzarini et al, "Time-stretching using the Instantaneous Frequency Distribution and Partial
  Tracking", Proc.of ICMC05, Barcelona. It generates two PV streaming signals, one containing the
  amplitudes and frequencies (a similar output to pvsanal) and another containing amplitudes and 
  unwrapped phases. 
	      </p>
      </div>
      <div class="refsect1">
        <a id="idp139127280"></a>
        <h2>Syntax</h2>
        <pre class="synopsis">ffr,fphs <span class="command"><strong>pvsifd</strong></span> ain, ifftsize, ihopsize, iwintype[,iscal]</pre>
      </div>
      <div class="refsect1">
        <a id="idp139129520"></a>
        <h2>Performance</h2>
        <p>
      <span class="emphasis"><em>ffr</em></span> -- output pv stream in AMP_FREQ format
    </p>
        <p>
      <span class="emphasis"><em>fphs</em></span> -- output pv stream in AMP_PHASE format
    </p>
        <p>
      <span class="emphasis"><em>ifftsize</em></span> -- FFT analysis size, must be power-of-two and integer multiple of the hopsize.
    </p>
        <p>
      <span class="emphasis"><em>ihopsize</em></span> -- hopsize in samples
    </p>
        <p>
      <span class="emphasis"><em>iwintype</em></span> -- window type (O: Hamming, 1: Hanning) 
    </p>
        <p>
      <span class="emphasis"><em>iscal</em></span> -- amplitude scaling (defaults to 1).
    </p>
        <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
          <table border="0" summary="Warning">
            <tr>
              <td rowspan="2" align="center" valign="top" width="25">
                <img alt="[Warning]" src="images/warning.png" />
              </td>
              <th align="left">Warning</th>
            </tr>
            <tr>
              <td align="left" valign="top">
                <p>
      It is unsafe to use the same f-variable for both input and output of pvs opcodes. Using the same one might lead to undefined behavior on some opcodes. Use a different one on the left and right sides of the opcode.
    </p>
              </td>
            </tr>
          </table>
        </div>
      </div>
      <div class="refsect1">
        <a id="idp139136496"></a>
        <h2>Examples</h2>
        <p>
      Here is an example of the pvsifd opcode. It uses the file <a class="ulink" href="examples/pvsifd.csd" target="_top"><em class="citetitle">pvsifd.csd</em></a>.
      </p>
        <div class="example">
          <a id="idp139138272"></a>
          <p class="title">
            <strong>Example 698. Example of the pvsifd opcode.</strong>
          </p>
          <div class="example-contents">
            <p>See the sections <a class="link" href="UsingRealTime.html" title="Real-Time Audio"><em class="citetitle">Real-time Audio</em></a> and <a class="link" href="CommandFlags.html" title="Csound command line"><em class="citetitle">Command Line Flags</em></a> for more information on using command line flags.</p>
            <pre class="programlisting">
<span class="csdtag">&lt;CsoundSynthesizer&gt;</span>
<span class="csdtag">&lt;CsOptions&gt;</span>
<span class="comment">; Select audio/midi flags here according to platform</span>
-odac  <span class="comment">;;;realtime audio out</span>
<span class="comment">;-iadc    ;;;uncomment -iadc if realtime audio input is needed too</span>
<span class="comment">; For Non-realtime ouput leave only the line below:</span>
<span class="comment">; -o pvsifd.wav -W ;;; for file output any platform</span>
<span class="csdtag">&lt;/CsOptions&gt;</span>
<span class="csdtag">&lt;CsInstruments&gt;</span>

<span class="ohdr">sr</span> <span class="op">=</span> 44100
<span class="ohdr">ksmps</span> <span class="op">=</span> 32
<span class="ohdr">nchnls</span> <span class="op">=</span> 2
<span class="ohdr">0dbfs</span>  <span class="op">=</span> 1

<span class="oblock">instr</span> 1

ain	<span class="opc">diskin2</span>  "beats.wav", 1, 0, 1                  
fs1,fsi2 <span class="opc">pvsifd</span>  ain, 2048, 512, 1		<span class="comment">; pvsifd analysis</span>
fst	<span class="opc">partials</span> fs1, fsi2, .1, 1,3, 500	<span class="comment">; partial tracking</span>
aout	<span class="opc">resyn</span>    fst, 1, 1.5, 500, 1		<span class="comment">; resynthesis (up a 5th)</span>
	<span class="opc">outs</span>	aout, aout

<span class="oblock">endin</span>
<span class="csdtag">&lt;/CsInstruments&gt;</span>
<span class="csdtag">&lt;CsScore&gt;</span>
<span class="comment">;sine</span>
<span class="stamnt">f</span>1 0 4096 10 1

<span class="stamnt">i</span> 1 0 2
<span class="stamnt">e</span>
<span class="csdtag">&lt;/CsScore&gt;</span>
<span class="csdtag">&lt;/CsoundSynthesizer&gt;</span>
</pre>
          </div>
        </div>
        <p><br class="example-break" />
    </p>
        <p>The example above shows the pvsifd analysis feeding into partial tracking andcubic-phase additive resynthesis with pitch shifting.</p>
      </div>
      <div class="refsect1">
        <a id="idp139143088"></a>
        <h2>Credits</h2>
        <p>
      </p>
        <table border="0" summary="Simple list" class="simplelist">
          <tr>
            <td>Author: Victor Lazzarini</td>
          </tr>
          <tr>
            <td>June 2005 </td>
          </tr>
        </table>
        <p>
    </p>
        <p>New plugin in version 5</p>
        <p>November 2004.</p>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="pvshift.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="OpcodesTop.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="pvsinfo.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">pvshift </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> pvsinfo</td>
        </tr>
      </table>
    </div>
  </body>
</html>
